package ch.unifr.diuf.webeng.taskmap.db;

import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
//import org.myorg.SystemUnavailableException;
//import sun.misc.BASE64Encoder;
//import sun.misc.CharacterEncoder;

public final class PasswordService {
	private static PasswordService instance;

	private PasswordService() {
	}

	public synchronized String encrypt(String plaintext){
//			throws SystemUnavailableException {
		MessageDigest md = null;
		try {
			md = MessageDigest.getInstance("SHA"); // step 2
		} catch (NoSuchAlgorithmException e) {
//			throw new SystemUnavailableException(e.getMessage());
		}
		try {
			md.update(plaintext.getBytes("UTF-8")); // step 3
		} catch (UnsupportedEncodingException e) {
//			throw new SystemUnavailableException(e.getMessage());
		}
		byte raw[] = md.digest(); // step 4
//		String hash = (new BASE64Encoder()).encode(raw); // step 5
		String hash=null;
		hash = new String(raw);
		return hash; // step 6
	}

	public static synchronized PasswordService getInstance() // step 1
	{
		if (instance == null) {
			return new PasswordService();
		} else {
			return instance;
		}
	}
}